package com.kaifamiao.methods;

// 重载(overload)
// 同一个类中存在多个同名不同参的方法时，他们相互之间构成重载
// 必须满足的条件是 同类、同名、不同参
// 同名: 方法名称必须完全相同
// 不同参: 参数个数、参数类型、参数顺序(参数类型的顺序)
// 不必考虑的因素: 方法的修饰符、方法的返回类型、方法所抛出的异常
public class Human {

    public int add(int a, int b) {
        System.out.println("add(int, int)");
        int c = a + b;
        return c ;
    }

    public int add(int a, int b, int c) {
        System.out.println("add(int, int, int)");
        int x = a + b + c;
        return x ;
    }

    public double add(double a, double b) {
        System.out.println("add(double, double)");
        double c = a + b;
        return c ;
    }

    public int add(byte a, short b) {
        System.out.println("add(byte, short)");
        int c = a + b;
        return c ;
    }

    public int add(short x, byte y) {
        System.out.println("add(short, byte)");
        int c = x + y;
        return c ;
    }

    public long add(byte a, byte b) {
        System.out.println("add(byte, byte)");
        long c = a + b;
        return c ;
    }
}
